[msl] Update expectations

Many tests are now passing due to basic module-scope variable handling.

Bug: 42251016
Change-Id: I8d6da9639b5ba9f030525f420db8330098d8b6bf
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/188344
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
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 ebcc21e..8cca224 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,24 +1,23 @@
-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];
+};
 
-../../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)
+struct tint_module_vars_struct {
+  const device tint_array<half, 1>* in;
+  device tint_array<half, 1>* out;
+};
+
+kernel void tint_symbol(const device tint_array<half, 1>* in [[buffer(0)]], device tint_array<half, 1>* out [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars.out[0] = tint_module_vars.in[0];
 }
-
-%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
-    store %4, %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/buffer/storage/types/runtime_array_f32.wgsl.expected.ir.msl b/test/tint/buffer/storage/types/runtime_array_f32.wgsl.expected.ir.msl
index c5c7875..d148d72 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,24 +1,23 @@
-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];
+};
 
-../../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)
+struct tint_module_vars_struct {
+  const device tint_array<float, 1>* in;
+  device tint_array<float, 1>* out;
+};
+
+kernel void tint_symbol(const device tint_array<float, 1>* in [[buffer(0)]], device tint_array<float, 1>* out [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = {.in=in, .out=out};
+  tint_module_vars.out[0] = tint_module_vars.in[0];
 }
-
-%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
-    store %4, %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/bug/chromium/1343242.wgsl.expected.ir.msl b/test/tint/bug/chromium/1343242.wgsl.expected.ir.msl
index 78c346a..6c73104 100644
--- a/test/tint/bug/chromium/1343242.wgsl.expected.ir.msl
+++ b/test/tint/bug/chromium/1343242.wgsl.expected.ir.msl
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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/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 8cac9ee..0f7ec1f 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
@@ -1,24 +1,5 @@
-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];
-};
 
-
-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 7c79dfc..0f7ec1f 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
@@ -1,24 +1,5 @@
-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];
-};
 
-
-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 a4c0a7f..6c73104 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,19 +1,3 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
 
-../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: A = struct @align(4) {
-  a:array<f32, 1000000> @offset(0)
-}
-
-$B1: {  # root
-  %v:ptr<storage, array<i32, 1000000>, read> = var @binding_point(0, 0)
-  %b:ptr<storage, A, read> = var @binding_point(0, 1)
-}
-
-
-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/chromium/1449474.wgsl.expected.ir.msl b/test/tint/bug/chromium/1449474.wgsl.expected.ir.msl
index 06f9314..0f7ec1f 100644
--- a/test/tint/bug/chromium/1449474.wgsl.expected.ir.msl
+++ b/test/tint/bug/chromium/1449474.wgsl.expected.ir.msl
@@ -1,22 +1,5 @@
-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];
-};
 
-
-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/339684346.wgsl.expected.ir.msl b/test/tint/bug/chromium/339684346.wgsl.expected.ir.msl
new file mode 100644
index 0000000..84fc1f2
--- /dev/null
+++ b/test/tint/bug/chromium/339684346.wgsl.expected.ir.msl
@@ -0,0 +1,8 @@
+#include <metal_stdlib>
+using namespace metal;
+
+void a(thread int* const x) {
+}
+void b(thread int* const x) {
+  a(x);
+}
diff --git a/test/tint/bug/chromium/339704114.wgsl.expected.ir.msl b/test/tint/bug/chromium/339704114.wgsl.expected.ir.msl
new file mode 100644
index 0000000..4e3b230
--- /dev/null
+++ b/test/tint/bug/chromium/339704114.wgsl.expected.ir.msl
@@ -0,0 +1,8 @@
+#include <metal_stdlib>
+using namespace metal;
+
+int a(int v) {
+  return v;
+}
+kernel void b() {
+}
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 68a168c..3dbd667 100644
--- a/test/tint/bug/oss-fuzz/57795.spv.expected.ir.msl
+++ b/test/tint/bug/oss-fuzz/57795.spv.expected.ir.msl
@@ -1,42 +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];
-};
 
-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/1474-b.wgsl.expected.ir.msl b/test/tint/bug/tint/1474-b.wgsl.expected.ir.msl
index fe06cb7..4e98217 100644
--- a/test/tint/bug/tint/1474-b.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1474-b.wgsl.expected.ir.msl
@@ -1,23 +1,9 @@
-SKIP: FAILED
-
 <dawn>/test/tint/bug/tint/1474-b.wgsl:7:5 warning: code is unreachable
     let non_uniform_cond = non_uniform_value == 0;
     ^^^^^^^^^^^^^^^^^^^^
 
-../../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)
-}
+#include <metal_stdlib>
+using namespace metal;
 
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
-  $B2: {
-    ret
-  }
+kernel void tint_symbol() {
 }
-
-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/1660.wgsl.expected.ir.msl b/test/tint/bug/tint/1660.wgsl.expected.ir.msl
index ee80ac2..6c73104 100644
--- a/test/tint/bug/tint/1660.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/1660.wgsl.expected.ir.msl
@@ -1,22 +1,3 @@
-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<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/2069.wgsl.expected.ir.msl b/test/tint/bug/tint/2069.wgsl.expected.ir.msl
index d40cb4d..a59c5ee 100644
--- a/test/tint/bug/tint/2069.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/2069.wgsl.expected.ir.msl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 using namespace metal;
 struct modf_result_f32 {
@@ -7,10 +5,6 @@
   float whole;
 };
 
-thread modf_result_f32 v = modf_result_f32{.fract=0.0f, .whole=1.0f};
 kernel void tint_symbol() {
+  thread modf_result_f32 v = modf_result_f32{.fract=0.0f, .whole=1.0f};
 }
-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 a812156..6c73104 100644
--- a/test/tint/bug/tint/2076.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/2076.wgsl.expected.ir.msl
@@ -1,46 +1,3 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
 
-../../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_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)
-}
-
-
-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 bf849a7..6c73104 100644
--- a/test/tint/bug/tint/294.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/294.wgsl.expected.ir.msl
@@ -1,23 +1,3 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
 
-../../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)
-}
-
-Lights = struct @align(16) {
-  light:array<Light> @offset(0)
-}
-
-$B1: {  # root
-  %lights:ptr<storage, Lights, read> = var @binding_point(0, 1)
-}
-
-
-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/369.wgsl.expected.ir.msl b/test/tint/bug/tint/369.wgsl.expected.ir.msl
index 7e7d8ce..6c73104 100644
--- a/test/tint/bug/tint/369.wgsl.expected.ir.msl
+++ b/test/tint/bug/tint/369.wgsl.expected.ir.msl
@@ -1,19 +1,3 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
 
-../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(8) {
-  m:mat2x2<f32> @offset(0)
-}
-
-$B1: {  # root
-  %SSBO:ptr<storage, S, read> = var @binding_point(0, 0)
-  %UBO:ptr<uniform, S, read> = var @binding_point(0, 0)
-}
-
-
-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/workgroupUniformLoad/bool.wgsl.expected.ir.msl b/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.ir.msl
index 7fee66a..18a3c5d 100644
--- a/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.ir.msl
+++ b/test/tint/builtins/workgroupUniformLoad/bool.wgsl.expected.ir.msl
@@ -1,16 +1,12 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 using namespace metal;
+struct tint_module_vars_struct {
+  threadgroup bool* v;
+};
 
-threadgroup bool v;
-bool foo() {
+bool foo(tint_module_vars_struct tint_module_vars) {
   threadgroup_barrier(mem_flags::mem_threadgroup);
-  bool const v_1 = v;
+  bool const v_1 = tint_module_vars.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/if_condition.wgsl.expected.ir.msl b/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.ir.msl
index 4184af3..96fad06 100644
--- a/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.ir.msl
+++ b/test/tint/builtins/workgroupUniformLoad/if_condition.wgsl.expected.ir.msl
@@ -1,19 +1,15 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 using namespace metal;
+struct tint_module_vars_struct {
+  threadgroup bool* v;
+};
 
-threadgroup bool v;
-int foo() {
+int foo(tint_module_vars_struct tint_module_vars) {
   threadgroup_barrier(mem_flags::mem_threadgroup);
-  bool const v_1 = v;
+  bool const v_1 = tint_module_vars.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/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 5627742..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 bf5ccd5..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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/mat2x3/literal/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat2x3/literal/f16-f32.wgsl.expected.ir.msl
index 3395466..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 0a827c4..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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/mat2x4/literal/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat2x4/literal/f16-f32.wgsl.expected.ir.msl
index 95e1ff1..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #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));
-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 4d3818b..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #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));
-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/mat3x2/literal/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat3x2/literal/f16-f32.wgsl.expected.ir.msl
index 8459fa6..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #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));
-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 a1ea545..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #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));
-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/mat3x3/literal/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat3x3/literal/f16-f32.wgsl.expected.ir.msl
index 26e06c0..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #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));
-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 18e1af4..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #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));
-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/mat3x4/literal/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat3x4/literal/f16-f32.wgsl.expected.ir.msl
index 1e799db..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #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));
-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 87b4e1d..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #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));
-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/mat4x2/literal/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat4x2/literal/f16-f32.wgsl.expected.ir.msl
index cd3acca..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #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));
-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 e8dcd7d..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #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));
-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/mat4x3/literal/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat4x3/literal/f16-f32.wgsl.expected.ir.msl
index ae07c18..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #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));
-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 3b45939..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #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));
-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/mat4x4/literal/f16-f32.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/mat4x4/literal/f16-f32.wgsl.expected.ir.msl
index 776b0de..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #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));
-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 5b7f4b4..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #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));
-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/scalar/literal/bool-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/literal/bool-f16.wgsl.expected.ir.msl
index 0537133..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 98e1b9e..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 909370a..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 92c1dc7..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 741bd6e..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 98e1b9e..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 909370a..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 92c1dc7..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 741bd6e..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 0537133..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 909370a..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 92c1dc7..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 741bd6e..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 0537133..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 98e1b9e..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 92c1dc7..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 741bd6e..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 0537133..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 98e1b9e..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 909370a..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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/f16-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/f16-bool.wgsl.expected.ir.msl
index c47e547..d8c8d05 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,16 +1,9 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 using namespace metal;
+struct tint_module_vars_struct {
+  thread half* u;
+};
 
-thread half u = 1.0h;
-void f() {
-  bool const v = bool(u);
+void f(tint_module_vars_struct tint_module_vars) {
+  bool const v = bool(tint_module_vars.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/f32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/f32-bool.wgsl.expected.ir.msl
index f08bb37..9a5de22 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,16 +1,9 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 using namespace metal;
+struct tint_module_vars_struct {
+  thread float* u;
+};
 
-thread float u = 1.0f;
-void f() {
-  bool const v = bool(u);
+void f(tint_module_vars_struct tint_module_vars) {
+  bool const v = bool(tint_module_vars.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/i32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/i32-bool.wgsl.expected.ir.msl
index a7223d2..0c06b00 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,16 +1,9 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 using namespace metal;
+struct tint_module_vars_struct {
+  thread int* u;
+};
 
-thread int u = 1;
-void f() {
-  bool const v = bool(u);
+void f(tint_module_vars_struct tint_module_vars) {
+  bool const v = bool(tint_module_vars.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/u32-bool.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/scalar/var/u32-bool.wgsl.expected.ir.msl
index eb0f0cf..8fbccf1 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,16 +1,9 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 using namespace metal;
+struct tint_module_vars_struct {
+  thread uint* u;
+};
 
-thread uint u = 1u;
-void f() {
-  bool const v = bool(u);
+void f(tint_module_vars_struct tint_module_vars) {
+  bool const v = bool(tint_module_vars.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/vec2/literal/bool-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec2/literal/bool-f16.wgsl.expected.ir.msl
index c40812b..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 8fbe300..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 b792e98..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 c263abf..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 fe06240..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 8fbe300..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 b792e98..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 c263abf..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 fe06240..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 c40812b..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 b792e98..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 c263abf..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 fe06240..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 c40812b..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 8fbe300..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 c263abf..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 fe06240..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 c40812b..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 8fbe300..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 b792e98..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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/vec3/literal/bool-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec3/literal/bool-f16.wgsl.expected.ir.msl
index 8b87f52..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 b56bf5e..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 d496a7d..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 1a58077..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 11124d1..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 b56bf5e..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 d496a7d..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 1a58077..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 11124d1..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 8b87f52..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 d496a7d..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 1a58077..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 11124d1..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 8b87f52..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 b56bf5e..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 1a58077..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 11124d1..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 8b87f52..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 b56bf5e..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 d496a7d..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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/vec4/literal/bool-f16.wgsl.expected.ir.msl b/test/tint/expressions/type_conv/vec4/literal/bool-f16.wgsl.expected.ir.msl
index d6d554f..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 b8efcf6..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 f2de93d..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 0dabadb..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 7757036..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 b8efcf6..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 f2de93d..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 0dabadb..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 7757036..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 d6d554f..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 f2de93d..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 0dabadb..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 7757036..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 d6d554f..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 b8efcf6..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 0dabadb..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 7757036..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 d6d554f..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 b8efcf6..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 f2de93d..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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_ctor/vec2/explicit/bool.wgsl.expected.ir.msl b/test/tint/expressions/type_ctor/vec2/explicit/bool.wgsl.expected.ir.msl
index 7b62745..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 5987ec4..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 bdf0225..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 55694ee..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 b401bc2..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 bdf0225..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 55694ee..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 7b62745..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 5987ec4..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 bdf0225..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 55694ee..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 b401bc2..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 318d3c8..6c73104 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
@@ -1,18 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 using namespace metal;
 
-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 fda0abd..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 4878360..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 ae4219e..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 5926229..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 85e3de6..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 ae4219e..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 5926229..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 fda0abd..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 4878360..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 ae4219e..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 5926229..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 85e3de6..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 616e341..6c73104 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
@@ -1,18 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 using namespace metal;
 
-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 14791f3..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 e921eea..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 1f86fd9..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 9e7a354..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 20aca2d..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 1f86fd9..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 9e7a354..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 14791f3..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 e921eea..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 1f86fd9..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 9e7a354..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 20aca2d..6c73104 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
@@ -1,10 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 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 ab28cbc..6c73104 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
@@ -1,18 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 using namespace metal;
 
-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/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 8a7cb59..0097f9a 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,23 +1,5 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
 
-../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
-  arr:array<i32> @offset(0)
+kernel void tint_symbol() {
 }
-
-$B1: {  # root
-  %s:ptr<storage, S, read_write> = var @binding_point(0, 0)
-}
-
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
-  $B2: {
-    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/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 862a349..ff2a143 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,24 +1,24 @@
-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];
+};
 
-../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
-  arr:array<i32> @offset(0)
+struct S {
+  tint_array<int, 1> arr;
+};
+struct tint_module_vars_struct {
+  device S* s;
+};
+
+kernel void tint_symbol(device S* s [[buffer(0)]]) {
+  tint_module_vars_struct const tint_module_vars = {.s=s};
 }
-
-$B1: {  # root
-  %s:ptr<storage, S, read_write> = var @binding_point(0, 0)
-}
-
-%tint_symbol = @compute @workgroup_size(1, 1, 1) func():void {
-  $B2: {
-    %3:ptr<storage, array<i32>, read_write> = access %s, 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/statements/assign/phony/storage_buffer.wgsl.expected.ir.msl b/test/tint/statements/assign/phony/storage_buffer.wgsl.expected.ir.msl
index a176483..5800906 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,26 +1,12 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
+struct S {
+  int i;
+};
+struct tint_module_vars_struct {
+  device S* s;
+};
 
-../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
-  i:i32 @offset(0)
+kernel void tint_symbol(device S* s [[buffer(0)]]) {
+  tint_module_vars_struct const tint_module_vars = {.s=s};
 }
-
-$B1: {  # root
-  %s:ptr<storage, S, read_write> = var @binding_point(0, 0)
-}
-
-%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
-    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/statements/assign/phony/uniform_buffer.wgsl.expected.ir.msl b/test/tint/statements/assign/phony/uniform_buffer.wgsl.expected.ir.msl
index d5ae925..fbb60dd 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,26 +1,12 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
+struct S {
+  int i;
+};
+struct tint_module_vars_struct {
+  const constant S* u;
+};
 
-../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(4) {
-  i:i32 @offset(0)
+kernel void tint_symbol(const constant S* u [[buffer(0)]]) {
+  tint_module_vars_struct const tint_module_vars = {.u=u};
 }
-
-$B1: {  # root
-  %u:ptr<uniform, S, read> = var @binding_point(0, 0)
-}
-
-%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
-    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/statements/decrement/private.wgsl.expected.ir.msl b/test/tint/statements/decrement/private.wgsl.expected.ir.msl
index 45fa6de..91c8fa6 100644
--- a/test/tint/statements/decrement/private.wgsl.expected.ir.msl
+++ b/test/tint/statements/decrement/private.wgsl.expected.ir.msl
@@ -1,13 +1,9 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 using namespace metal;
+struct tint_module_vars_struct {
+  thread int* i;
+};
 
-thread int i = 0;
-void tint_symbol() {
-  i = (i - 1);
+void tint_symbol(tint_module_vars_struct tint_module_vars) {
+  tint_module_vars.i = (tint_module_vars.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 2794193..94432c9 100644
--- a/test/tint/statements/decrement/storage.wgsl.expected.ir.msl
+++ b/test/tint/statements/decrement/storage.wgsl.expected.ir.msl
@@ -1,22 +1,9 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
+struct tint_module_vars_struct {
+  device uint* i;
+};
 
-../../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)
+void tint_symbol(tint_module_vars_struct tint_module_vars) {
+  tint_module_vars.i = (tint_module_vars.i - 1u);
 }
-
-%tint_symbol = func():void {
-  $B2: {
-    %3:u32 = load %i
-    %4:u32 = sub %3, 1u
-    store %i, %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/statements/decrement/vector_component.wgsl.expected.ir.msl b/test/tint/statements/decrement/vector_component.wgsl.expected.ir.msl
index 8147c38..86fdc0f 100644
--- a/test/tint/statements/decrement/vector_component.wgsl.expected.ir.msl
+++ b/test/tint/statements/decrement/vector_component.wgsl.expected.ir.msl
@@ -1,25 +1,10 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
+struct tint_module_vars_struct {
+  device uint4* a;
+};
 
-../../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)
+void tint_symbol(tint_module_vars_struct tint_module_vars) {
+  tint_module_vars.a[1] = (tint_module_vars.a[1] - 1u);
+  tint_module_vars.a[2u] = (tint_module_vars.a[2u] - 1u);
 }
-
-%tint_symbol = func():void {
-  $B2: {
-    %3:u32 = load_vector_element %a, 1i
-    %4:u32 = sub %3, 1u
-    store_vector_element %a, 1i, %4
-    %5:u32 = load_vector_element %a, 2u
-    %6:u32 = sub %5, 1u
-    store_vector_element %a, 2u, %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/statements/decrement/workgroup.wgsl.expected.ir.msl b/test/tint/statements/decrement/workgroup.wgsl.expected.ir.msl
index 8be9fea..d1bc058 100644
--- a/test/tint/statements/decrement/workgroup.wgsl.expected.ir.msl
+++ b/test/tint/statements/decrement/workgroup.wgsl.expected.ir.msl
@@ -1,13 +1,9 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 using namespace metal;
+struct tint_module_vars_struct {
+  threadgroup int* i;
+};
 
-threadgroup int i;
-void tint_symbol() {
-  i = (i - 1);
+void tint_symbol(tint_module_vars_struct tint_module_vars) {
+  tint_module_vars.i = (tint_module_vars.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/increment/private.wgsl.expected.ir.msl b/test/tint/statements/increment/private.wgsl.expected.ir.msl
index 550fb50..245468b 100644
--- a/test/tint/statements/increment/private.wgsl.expected.ir.msl
+++ b/test/tint/statements/increment/private.wgsl.expected.ir.msl
@@ -1,13 +1,9 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 using namespace metal;
+struct tint_module_vars_struct {
+  thread int* i;
+};
 
-thread int i = 0;
-void tint_symbol() {
-  i = (i + 1);
+void tint_symbol(tint_module_vars_struct tint_module_vars) {
+  tint_module_vars.i = (tint_module_vars.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 b554868..b963109 100644
--- a/test/tint/statements/increment/storage.wgsl.expected.ir.msl
+++ b/test/tint/statements/increment/storage.wgsl.expected.ir.msl
@@ -1,22 +1,9 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
+struct tint_module_vars_struct {
+  device uint* i;
+};
 
-../../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)
+void tint_symbol(tint_module_vars_struct tint_module_vars) {
+  tint_module_vars.i = (tint_module_vars.i + 1u);
 }
-
-%tint_symbol = func():void {
-  $B2: {
-    %3:u32 = load %i
-    %4:u32 = add %3, 1u
-    store %i, %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/statements/increment/vector_component.wgsl.expected.ir.msl b/test/tint/statements/increment/vector_component.wgsl.expected.ir.msl
index 28047f5..ae047c7 100644
--- a/test/tint/statements/increment/vector_component.wgsl.expected.ir.msl
+++ b/test/tint/statements/increment/vector_component.wgsl.expected.ir.msl
@@ -1,25 +1,10 @@
-SKIP: FAILED
+#include <metal_stdlib>
+using namespace metal;
+struct tint_module_vars_struct {
+  device uint4* a;
+};
 
-../../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)
+void tint_symbol(tint_module_vars_struct tint_module_vars) {
+  tint_module_vars.a[1] = (tint_module_vars.a[1] + 1u);
+  tint_module_vars.a[2u] = (tint_module_vars.a[2u] + 1u);
 }
-
-%tint_symbol = func():void {
-  $B2: {
-    %3:u32 = load_vector_element %a, 1i
-    %4:u32 = add %3, 1u
-    store_vector_element %a, 1i, %4
-    %5:u32 = load_vector_element %a, 2u
-    %6:u32 = add %5, 1u
-    store_vector_element %a, 2u, %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/statements/increment/workgroup.wgsl.expected.ir.msl b/test/tint/statements/increment/workgroup.wgsl.expected.ir.msl
index 29d6518..39fbfd2 100644
--- a/test/tint/statements/increment/workgroup.wgsl.expected.ir.msl
+++ b/test/tint/statements/increment/workgroup.wgsl.expected.ir.msl
@@ -1,13 +1,9 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 using namespace metal;
+struct tint_module_vars_struct {
+  threadgroup int* i;
+};
 
-threadgroup int i;
-void tint_symbol() {
-  i = (i + 1);
+void tint_symbol(tint_module_vars_struct tint_module_vars) {
+  tint_module_vars.i = (tint_module_vars.i + 1);
 }
-program_source:4:17: error: program scope variable must reside in constant address space
-threadgroup int i;
-                ^
-
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
deleted file mode 100644
index 6149064..0000000
--- a/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_0.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 6149064..0000000
--- a/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_1.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 6b7be62..0000000
--- a/test/tint/unittest/reader/spirv/Images_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_2.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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/Samplers_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_0.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/Samplers_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_0.spvasm.expected.ir.msl
deleted file mode 100644
index ff8fa45..0000000
--- a/test/tint/unittest/reader/spirv/Samplers_SpvParserHandleTest_DeclUnderspecifiedHandle_Variable_0.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,16 +0,0 @@
-SKIP: FAILED
-
-#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/SpvModuleScopeVarParserTest_AnonWorkgroupVar.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_AnonWorkgroupVar.spvasm.expected.ir.msl
deleted file mode 100644
index b161ee6..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_AnonWorkgroupVar.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 2f1f4a4..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ArrayInitializer.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,27 +0,0 @@
-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];
-};
-
-
-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
deleted file mode 100644
index 9a7e534..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ArrayNullInitializer.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,27 +0,0 @@
-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];
-};
-
-
-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
deleted file mode 100644
index 57c0c07..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_BindingDecoration_Valid.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-../../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: {  # root
-  %x_1:ptr<storage, S, read_write> = var @binding_point(0, 3)
-}
-
-%main_1 = func():void {
-  $B2: {
-    ret
-  }
-}
-%tint_symbol = @fragment func():void {
-  $B3: {
-    %4:void = call %main_1
-    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/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
deleted file mode 100644
index 6ae8046..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Input_OppositeSignednessAsWGSL.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index e31977d..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Input_SameSignednessAsWGSL.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 27ac679..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Output_Initializer_OppositeSignednessAsWGSL.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,27 +0,0 @@
-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];
-};
-
-
-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
deleted file mode 100644
index f947593..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_Builtin_Output_Initializer_SameSignednessAsWGSL.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,27 +0,0 @@
-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];
-};
-
-
-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
deleted file mode 100644
index 86c0be0..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ColMajorDecoration_Dropped.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,29 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(8) {
-  field0:mat3x2<f32> @offset(0)
-}
-
-$B1: {  # root
-  %myvar:ptr<storage, S, read_write> = var @binding_point(0, 0)
-}
-
-%main_1 = func():void {
-  $B2: {
-    ret
-  }
-}
-%tint_symbol = @fragment func():void {
-  $B3: {
-    %4:void = call %main_1
-    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/unittest/reader/spirv/SpvModuleScopeVarParserTest_DescriptorGroupDecoration_Valid.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_DescriptorGroupDecoration_Valid.spvasm.expected.ir.msl
deleted file mode 100644
index a5a00d7..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_DescriptorGroupDecoration_Valid.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-../../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: {  # root
-  %x_1:ptr<storage, S, read_write> = var @binding_point(0, 9)
-}
-
-%main_1 = func():void {
-  $B2: {
-    ret
-  }
-}
-%tint_symbol = @fragment func():void {
-  $B3: {
-    %4:void = call %main_1
-    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/unittest/reader/spirv/SpvModuleScopeVarParserTest_InputVarsConvertedToPrivate.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InputVarsConvertedToPrivate.spvasm.expected.ir.msl
deleted file mode 100644
index e31977d..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_InputVarsConvertedToPrivate.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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_MatrixInitializer.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixInitializer.spvasm.expected.ir.msl
deleted file mode 100644
index 5814a1d..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixInitializer.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 93d73d9..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixNullInitializer.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index f6dd7a2..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: strided_arr = struct @align(8) {
-  el:vec2<f32> @offset(0)
-}
-
-S = struct @align(8) {
-  field0:array<strided_arr, 3> @offset(0)
-}
-
-$B1: {  # root
-  %myvar:ptr<storage, S, read_write> = var @binding_point(0, 0)
-}
-
-%main_1 = func():void {
-  $B2: {
-    ret
-  }
-}
-%tint_symbol = @fragment func():void {
-  $B3: {
-    %4:void = call %main_1
-    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/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration_Dropped.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration_Dropped.spvasm.expected.ir.msl
deleted file mode 100644
index 86c0be0..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration_Dropped.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,29 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(8) {
-  field0:mat3x2<f32> @offset(0)
-}
-
-$B1: {  # root
-  %myvar:ptr<storage, S, read_write> = var @binding_point(0, 0)
-}
-
-%main_1 = func():void {
-  $B2: {
-    ret
-  }
-}
-%tint_symbol = @fragment func():void {
-  $B3: {
-    %4:void = call %main_1
-    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/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
deleted file mode 100644
index 86c0be0..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_MatrixStrideDecoration_Natural_Dropped.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,29 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/msl/writer/printer/printer.cc:500 internal compiler error: S = struct @align(8) {
-  field0:mat3x2<f32> @offset(0)
-}
-
-$B1: {  # root
-  %myvar:ptr<storage, S, read_write> = var @binding_point(0, 0)
-}
-
-%main_1 = func():void {
-  $B2: {
-    ret
-  }
-}
-%tint_symbol = @fragment func():void {
-  $B3: {
-    %4:void = call %main_1
-    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/unittest/reader/spirv/SpvModuleScopeVarParserTest_NamedWorkgroupVar.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_NamedWorkgroupVar.spvasm.expected.ir.msl
deleted file mode 100644
index abd7f35..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_NamedWorkgroupVar.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index e31977d..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_OutputVarsConvertedToPrivate.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 6740c31..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_OutputVarsConvertedToPrivate_WithInitializer.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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_PrivateVar.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_PrivateVar.spvasm.expected.ir.msl
deleted file mode 100644
index 1d1579a..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_PrivateVar.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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_ScalarInitializers.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarInitializers.spvasm.expected.ir.msl
deleted file mode 100644
index 86d5c10..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarInitializers.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index ae5c499..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_ScalarNullInitializers.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,27 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index a145007..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StorageBuffer_NonWritable_AllMembers.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-../../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: {  # root
-  %x_1:ptr<storage, S, read> = var @binding_point(0, 0)
-}
-
-%main_1 = func():void {
-  $B2: {
-    ret
-  }
-}
-%tint_symbol = @fragment func():void {
-  $B3: {
-    %4:void = call %main_1
-    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/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
deleted file mode 100644
index 4e68937..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StorageBuffer_NonWritable_NotAllMembers.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-../../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: {  # root
-  %x_1:ptr<storage, S, read_write> = var @binding_point(0, 0)
-}
-
-%main_1 = func():void {
-  $B2: {
-    ret
-  }
-}
-%tint_symbol = @fragment func():void {
-  $B3: {
-    %4:void = call %main_1
-    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/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructInitializer.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructInitializer.spvasm.expected.ir.msl
deleted file mode 100644
index 365e656..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructInitializer.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,32 +0,0 @@
-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];
-};
-
-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
deleted file mode 100644
index 01adc83..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructMember_NonReadableDecoration_Dropped.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,31 +0,0 @@
-SKIP: FAILED
-
-../../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: {  # root
-  %x_1:ptr<storage, S, read_write> = var @binding_point(0, 0)
-}
-
-%main_1 = func():void {
-  $B2: {
-    ret
-  }
-}
-%tint_symbol = @fragment func():void {
-  $B3: {
-    %4:void = call %main_1
-    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/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructNullInitializer.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructNullInitializer.spvasm.expected.ir.msl
deleted file mode 100644
index 5d0837f..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_StructNullInitializer.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,32 +0,0 @@
-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];
-};
-
-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
deleted file mode 100644
index 5128b8c..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorBoolNullInitializer.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index de2c791..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorFloatNullInitializer.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index c10b4e8..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorInitializer.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 3ecf261..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorIntNullInitializer.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 710f436..0000000
--- a/test/tint/unittest/reader/spirv/SpvModuleScopeVarParserTest_VectorUintNullInitializer.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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/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
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_MultiBlockContinueConstruct_ContinueIsNotHeader.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_MultiBlockLoop_SingleBlockContinueConstruct.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_BackEdge_SingleBlockLoop.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0282ee5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToElse.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,17 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0282ee5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_IfToThen.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,17 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_LoopHeadToBody.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index c611a2b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToCase.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,25 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index c611a2b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Forward_SwitchToDefaultNotMerge.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,25 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 9746a4d..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromElse_ForwardWithinElse.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,28 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0282ee5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfHeader.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,17 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0282ee5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromIfThenElse.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,17 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index ffa9f65..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_IfBreak_FromThen_ForwardWithinThen.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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_FromLoopBody.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBody.spvasm.expected.ir.msl
deleted file mode 100644
index e98865c..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBody.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,28 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 141bcf5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyDirect.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 165d2f3..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Conditional.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,29 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index be7a64d..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopBodyNestedSelection_Unconditional.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,27 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_MultiBlockLoop.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_FalseBranch.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index f7e927c..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopBreak_FromLoopHeader_SingleBlockLoop_TrueBranch.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,23 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 31012f3..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_ConditionalFromNestedIf.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,29 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 5d7fa76..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedIf.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,27 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 2c7e429..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchCaseBody_Unconditional.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,34 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 5890bb1..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Conditional.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index cf1b356..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_FromNestedSwitchDefaultBody_Unconditional.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,34 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_LoopContinue_LoopBodyToContinue.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 512d8bf..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Premerge.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,19 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0282ee5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_Pathological_Forward_Regardless.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,17 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index aafb266..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Conditional.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 09c3acb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromNestedIf_Unconditional.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,28 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index c611a2b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseBody.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,25 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index fde6906..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchCaseDirect.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,25 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index c611a2b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultBody.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,25 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index c611a2b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ClassifyCFGEdges_SwitchBreak_FromSwitchDefaultIsMerge.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,25 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0282ee5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_DupConditionalBranch.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,17 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0282ee5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_FalseOnlyBranch.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,17 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index fa708ac..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_IgnoreStaticalyUnreachable.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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_Loop_BodyHasBreak.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreak.spvasm.expected.ir.msl
deleted file mode 100644
index 141bcf5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreak.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index be7a64d..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakIf.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,27 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index e98865c..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasBreakUnless.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,28 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 5d7fa76..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueIf.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,27 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 41cad46..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_BodyHasContinueUnless.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,28 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0a60e1a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index be7a64d..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Break.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,27 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 5d7fa76..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_If_Continue.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,27 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 43c9fd8..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,38 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 72755b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Body_Switch_CaseContinues.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,38 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0a60e1a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_ContainsIf.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: FAILED
-
-#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_Sequence.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_Sequence.spvasm.expected.ir.msl
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Continue_Sequence.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakIf.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index f7e927c..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_HeaderHasBreakUnless.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,23 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 175cf2b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index a9ee5984..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerBreak.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,36 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index b24dc6d..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_Loop_InnerContinue.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: FAILED
-
-#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_SingleBlock_Simple.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_SingleBlock_Simple.spvasm.expected.ir.msl
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Loop_SingleBlock_Simple.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 5fc66c6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_IfBreak_In_SwitchCase.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 6d4f650..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_If_Contains_If.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 187f62f..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Nest_If_In_SwitchCase.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index fa708ac..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_OneBlock.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 60a2ca8..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_ReorderSequence.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,20 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index e83434a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_RespectConditionalBranchOrder.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,19 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index b3c78bf..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_SwitchOrderNaturallyReversed.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,29 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index b3c78bf..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_SwitchWithDefaultOrderNaturallyReversed.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,29 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 5d0094e..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_Switch_DefaultSameAsACase.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0282ee5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_TrueOnlyBranch.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,17 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index fa708ac..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_ComputeBlockOrder_UnreachableIsDeadEnd.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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_FalseBranch_LoopBreak.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_LoopBreak.spvasm.expected.ir.msl
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_LoopBreak.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 45c9ba6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_FalseBranch_SwitchBreak.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,29 +0,0 @@
-SKIP: FAILED
-
-#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_IfSelection_TrueBranch_LoopBreak.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfSelection_TrueBranch_LoopBreak.spvasm.expected.ir.msl
deleted file mode 100644
index f7e927c..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_IfSelection_TrueBranch_LoopBreak.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,23 +0,0 @@
-SKIP: FAILED
-
-#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_Empty.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Empty.spvasm.expected.ir.msl
deleted file mode 100644
index 0282ee5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_If_Empty.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,17 +0,0 @@
-SKIP: FAILED
-
-#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_ReturnValue_InsideIf.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_InsideIf.spvasm.expected.ir.msl
deleted file mode 100644
index 1016bf8..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_InsideIf.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,25 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index f5d433e..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_Loop.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,27 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 104a428..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_ReturnValue_TopLevel.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index e5a47f3..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_InsideIf.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,18 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index c857a56..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_InsideLoop.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,21 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index fa708ac..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Return_TopLevel.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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_TrueBranch_SwitchBreak.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_TrueBranch_SwitchBreak.spvasm.expected.ir.msl
deleted file mode 100644
index 55f028d..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_TrueBranch_SwitchBreak.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,28 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 3733ffd..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InNonVoidFunction.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index e5a47f3..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InsideIf.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,18 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index c857a56..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_InsideLoop.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,21 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index fa708ac..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_EmitBody_Unreachable_TopLevel.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0282ee5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_ElseOnly.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,17 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_LoopBreak_Ok.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 45c9ba6..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_FalseBranch_SwitchBreak_Ok.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,29 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0282ee5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_IfOnly.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,17 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index fa708ac..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_NoIf.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 512d8bf..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ElseDirectToThen.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,19 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 512d8bf..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_Simple.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,19 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 512d8bf..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Premerge_ThenDirectToElse.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,19 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0282ee5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_Regardless.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,17 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0282ee5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_ThenElse.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,17 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index f7e927c..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_LoopBreak_Ok.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,23 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 55f028d..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindIfSelectionInternalHeaders_TrueBranch_SwitchBreak_Ok.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,28 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 9202ead..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsDefault.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 2aae9b4..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_CaseIsNotDefault.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,25 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index c611a2b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsMerge.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,25 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index c611a2b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_DefaultIsNotMerge.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,25 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 4dc3242..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_ManyValuesWithSameCase.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index fa708ac..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_FindSwitchCaseHeaders_NoSwitch.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0282ee5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_FunctionIsOnlyIfSelectionAndItsMerge.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,17 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 75e0c7d..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoMultiBlockLoopHeader.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 75e0c7d..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MergeBlockIsAlsoSingleBlockLoop.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_MultiBlockLoop_HeaderIsNotContinue.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 6d4f650..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_If.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 7b2b9e7..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_MultiBlockLoop.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 7b2b9e7..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_SingleBlockLoop.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index f8423a7..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_If_Switch.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,27 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0a60e1a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_LoopContinue_If.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0a60e1a..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_If.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 175cf2b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Loop_Loop.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0d9ebc0..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_Nest_Switch_If.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index fa708ac..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_OuterConstructIsFunction_MultiBlock.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index fa708ac..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_OuterConstructIsFunction_SingleBlock.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0282ee5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_PaddingBlocksBeforeAndAfterStructuredConstruct.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,17 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_SingleBlockLoop.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 72b1d22..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_LabelControlFlowConstructs_SwitchSelection.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,29 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_Branch.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_MultiBlockLoop_ContinueIsNotHeader_BranchConditional.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodLoopMerge_SingleBlockLoop.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0282ee5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_BranchConditional.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,17 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index c611a2b..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_GoodSelectionMerge_Switch.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,25 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index fa708ac..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_RegisterMerges_NoMerges.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_HasSiblingLoop.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index fa708ac..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_NotAContinue.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index fa708ac..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_Null.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_SiblingLoopConstruct_SingleBlockLoop.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0282ee5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_If.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,17 +0,0 @@
-SKIP: FAILED
-
-#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_Loop_Simple.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_Simple.spvasm.expected.ir.msl
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_Simple.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Loop_SingleBlock.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index fa708ac..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Sequence.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index fa708ac..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_SingleBlock.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index fa708ac..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_TerminatorsAreValid_Unreachable.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,15 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_MultiBlockLoop_Good.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 0282ee5..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_Selection_Good.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,17 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 8f0e2fb..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserCFGTest_VerifyHeaderContinueMergeOrder_SingleBlockLoop_Good.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,24 +0,0 @@
-SKIP: FAILED
-
-#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/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_CopyObject.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_CopyObject.spvasm.expected.ir.msl
deleted file mode 100644
index 4cae946..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_CopyObject.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,20 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 4cae946..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Direct.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,20 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 4cae946..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Image.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,20 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 4cae946..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_Load.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,20 +0,0 @@
-SKIP: FAILED
-
-#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
deleted file mode 100644
index 4cae946..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserHandleTest_GetMemoryObjectDeclarationForHandle_Variable_SampledImage.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,20 +0,0 @@
-SKIP: FAILED
-
-#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/SpvParserMemoryTest_RemapStorageBuffer_TypesAndVarDeclarations.spvasm.expected.ir.msl b/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_TypesAndVarDeclarations.spvasm.expected.ir.msl
deleted file mode 100644
index e543add..0000000
--- a/test/tint/unittest/reader/spirv/SpvParserMemoryTest_RemapStorageBuffer_TypesAndVarDeclarations.spvasm.expected.ir.msl
+++ /dev/null
@@ -1,30 +0,0 @@
-SKIP: FAILED
-
-../../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: {  # root
-  %myvar:ptr<storage, S, read_write> = var @binding_point(0, 0)
-}
-
-%main_1 = func():void {
-  $B2: {
-    ret
-  }
-}
-%tint_symbol = @fragment func():void {
-  $B3: {
-    %4:void = call %main_1
-    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/matrix.wgsl.expected.ir.msl b/test/tint/var/initialization/private/matrix.wgsl.expected.ir.msl
index 13c597d..2a58c88 100644
--- a/test/tint/var/initialization/private/matrix.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/private/matrix.wgsl.expected.ir.msl
@@ -1,12 +1,6 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 using namespace metal;
 
-thread float2x3 v = float2x3(0.0f);
 kernel void tint_symbol() {
+  thread float2x3 v = float2x3(0.0f);
 }
-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/scalar.wgsl.expected.ir.msl b/test/tint/var/initialization/private/scalar.wgsl.expected.ir.msl
index 65ac9c4..66ade84 100644
--- a/test/tint/var/initialization/private/scalar.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/private/scalar.wgsl.expected.ir.msl
@@ -1,12 +1,6 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 using namespace metal;
 
-thread int v = 0;
 kernel void tint_symbol() {
+  thread int v = 0;
 }
-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 9550c53..4125dab 100644
--- a/test/tint/var/initialization/private/struct.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/private/struct.wgsl.expected.ir.msl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 using namespace metal;
 struct S {
@@ -7,10 +5,6 @@
   float b;
 };
 
-thread S v = {};
 kernel void tint_symbol() {
+  thread S v = {};
 }
-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 b18e5a5..66b2045 100644
--- a/test/tint/var/initialization/private/vector.wgsl.expected.ir.msl
+++ b/test/tint/var/initialization/private/vector.wgsl.expected.ir.msl
@@ -1,12 +1,6 @@
-SKIP: FAILED
-
 #include <metal_stdlib>
 using namespace metal;
 
-thread int3 v = 0;
 kernel void tint_symbol() {
+  thread int3 v = 0;
 }
-program_source:4:13: error: program scope variable must reside in constant address space
-thread int3 v = 0;
-            ^
-